// ./utils/multer.util.js

const multer = require('multer');
const path = require('path');

// 存储配置
const storage = multer.diskStorage({
    // 文件存储目录
    destination: (req, file, cb) => {
        // 确保 'uploads' 目录存在
        cb(null, 'uploads/');
    },
    // 文件名
    filename: (req, file, cb) => {
        const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9);
        // 使用原始文件名和时间戳，并保留原始扩展名
        cb(null, file.fieldname + '-' + uniqueSuffix + path.extname(file.originalname));
    },
});

// 文件类型过滤（可选）
const fileFilter = (req, file, cb) => {
    // 接受 jpeg, jpg, png 格式
    if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png' || file.mimetype === 'image/jpg') {
        cb(null, true);
    } else {
        cb(new Error('只允许上传 JPEG/JPG/PNG 格式的图片'), false);
    }
};

const upload = multer({
    storage: storage,
    limits: {
        fileSize: 1024 * 1024 * 5, // 限制文件大小为 5MB
    },
    fileFilter: fileFilter,
});

module.exports = upload;
